--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
README.md 642d2a2c0904dfb3cd7bffce33cfa501504a669e (642d2a2c) Text, 8.01 KB
Reticulum MeshChatX
A extensively modified and feature-rich fork of Reticulum MeshChat by Liam Cottle.
This project is independent from the original Reticulum MeshChat project and is not affiliated with it.
• Source: git.quad4.io/RNS-Things/MeshChatX
• Releases: git.quad4.io/RNS-Things/MeshChatX/releases
• Changelog: CHANGELOG.md
Important Notes
• Uses LXST
• Replaced Peewee ORM with raw SQL.
│ [!WARNING] MeshChatX is not guaranteed to be wire/data compatible with older Reticulum MeshChat
│ releases. Back up data before migration/testing.
│ [!WARNING] Legacy systems are not fully supported yet. Current baseline is Python T383838>=3.11 and Node
│ T383838>=24.
Demo And Screenshots
<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>
UI Previews
Requirements
• Python T383838>=3.11 (from T383838pyproject.toml)
• Node.js T383838>=24 (from T383838package.json)
• pnpm T38383810.30.0 (from T383838package.json)
• Poetry (used by T383838Taskfile.yml and CI workflows)
Nix (flake.nix)
This repo includes a Nix flake at T383838flake.nix.
Enter the dev shell
T282828
nix develop
The flake dev shell provides Python, Poetry, Node, pnpm, Task, packaging tools (T383838rpm, T383838dpkg, T383838fakeroot), Android build tools, and Docker tooling.
Build the default Nix package
T282828
nix build .#default
Typical workflow inside T383838nix develop
T282828
task install
task lint:all
task test:all
task build:all
Install Methods
Use the method that matches your environment and packaging preference.
┌───────────────────────┬──────────────────────────┬─────────────────────────────────────────┬─────┐
│ Method │ Includes frontend assets │ Architectures │ Be… │
├───────────────────────┼──────────────────────────┼─────────────────────────────────────────┼─────┤
│ Docker image │ Yes │ T383838linux/amd64, T383838linux/arm64 │ Fa… │
│ Python wheel (T383838.whl) │ Yes │ Any Python-supported architecture │ He… │
│ Linux AppImage │ Yes │ T383838x64, T383838arm64 │ Po… │
│ Debian package (T383838.deb) │ Yes │ T383838x64, T383838arm64 │ De… │
│ RPM package (T383838.rpm) │ Yes │ CI-runner dependent for published arti… │ Fe… │
│ From source │ Built locally │ Host architecture │ De… │
└───────────────────────┴──────────────────────────┴─────────────────────────────────────────┴─────┘
Notes:
• The release workflow explicitly builds Linux T383838x64 and T383838arm64 AppImage + DEB.
• RPM is also attempted by release workflow and uploaded when produced.
Quick Start: Docker
T282828
docker compose up -d
Default compose file maps:
• T383838127.0.0.1:8000 on host -> container port T3838388000
• T383838./meshchat-config -> T383838/config for persistence
If your local T383838meshchat-config permissions block writes, fix ownership:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Install from Release Artifacts
1) Linux AppImage (x64/arm64)
1. Download T383838ReticulumMeshChatX-v<version>-linux-<arch>.AppImage from releases.
2. Make it executable and run:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. Download T383838ReticulumMeshChatX-v<version>-linux-<arch>.deb.
2. Install:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-based systems
1. Download T383838ReticulumMeshChatX-v<version>-linux-<arch>.rpm if present in the release.
2. Install with your distro tool:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
Release wheels include the built web assets.
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
T383838pipx is also supported:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Run from Source (Web Server Mode)
Use this when developing or when you need a local custom build.
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host T79c0ff127.0.0.1
Build Desktop Packages from Source
These scripts are defined in T383838package.json and T383838Taskfile.yml.
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Or through Task:
T282828
task dist:fe:rpm
Architecture Support Summary
• Docker image: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (build scripts available)
• macOS: build scripts available (T383838arm64, T383838universal) for local build environments
• Android: build workflow and Android project are present in this repository
Android
Configuration
MeshChatX supports both CLI args and env vars.
┌───────────────┬──────────────────────┬──────────────┬────────────────────────────────────────────┐
│ Argument │ Environment Variable │ Default │ Description │
├───────────────┼──────────────────────┼──────────────┼────────────────────────────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Web server bind address │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Web server port │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Disable HTTPS │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Do not auto-launch browser │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Enable basic auth │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Data directory │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ auto/bundled │ Frontend files directory (needed for sour… │
└───────────────┴──────────────────────┴──────────────┴────────────────────────────────────────────┘
Development
Common tasks from T383838Taskfile.yml:
T282828
task install
task lint:all
task test:all
task build:all
Versioning
Current version in this repo is T3838384.3.0.
• T383838package.json is the JavaScript/Electron version source.
• T383838meshchatx/src/version.py is synced from T383838package.json using:
T282828
pnpm run version:sync
For release consistency, keep version fields aligned where required (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).
Security
Security and integrity details:
• Built-in integrity checks and HTTPS/WSS defaults in app runtime
• CI scanning workflows in T383838.gitea/workflows/
Credits
• Liam Cottle - Original Reticulum MeshChat
• RFnexus - micron parser JavaScript work
• markqvist - Reticulum, LXMF, LXST
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────